# -*- coding: utf-8 -*-
# Data structure
#   map[name] = [[PNAME, PTIME], ]
# 
import sys
from xlrd import open_workbook

NAME_INDEX=0
P1NAME_INDEX=1
P1TIME_INDEX=2
P2NAME_INDEX=3
P2TIME_INDEX=4

PNAME_INDEX=0
PTIME_INDEX=1
PPERC_INDEX=2

def format_worktime(p1name, p1time, p2name, p2time):
    wt = []
    if (p2name == ""):
        wt = [[p1name, p1time, 100]]
    else:
        try:
            total = p1time + p2time
        except TypeError:
            #print "p1", p1name, p1time, "p2", p2time
            total = p1time
        if total < 5: total = 10
        total /= 100
        p1 = round(p1time/total)
        p2 = 100 - p1
        wt = [[p1name, p1time, p1], [p2name, p2time, p2]]
    return wt

def format_project(p1name):
    if len(p1name) == 0:
        return p1name
    else:
        return p1name.split()[-1]

def read_worktime(filename):
    ret = {}
    wb = open_workbook(filename)   
      
    for s in wb.sheets():   
        for row in range(1, s.nrows):
            name   = s.cell(row, NAME_INDEX  ).value.strip().replace(' ', '')
            p1name = s.cell(row, P1NAME_INDEX).value.strip()
            p2name = s.cell(row, P2NAME_INDEX).value.strip()
            p1time = s.cell(row, P1TIME_INDEX).value
            p2time = s.cell(row, P2TIME_INDEX).value
            #print name, p1name, p1time, p2name, p2time
            ret[name] = format_worktime(format_project(p1name), p1time, format_project(p2name), p2time)
    return ret

def print_xhh_format(name, result, l=30):
    temp = ['0']*l
    dtemp = ['0']*l
    for k, v in result.items():
        temp[k] = str(v)
        if (k>2):
            dtemp[k] = u'开发'.encode('gbk')
    print name+'\t'+'\t'.join(temp)
    print name+'\t'+'\t'.join(dtemp)

def print_matrix(src, nlist=[], plist=[]):
    if (len(plist) == 0):
        for k, v in ret.items():
            print k,
            for wt in v:
                print wt[PNAME_INDEX], wt[PPERC_INDEX],
            print
    else:
        l = len(plist)
        for name in nlist:
            try:
                worktime = src[name]
                #print name.encode('gbk'), 
                result = {}
                for wt in worktime:
                    pname = wt[PNAME_INDEX]
                    try:
                        idx = plist.index(pname)
                    except ValueError:
                        idx = 1
                    result[idx] = wt[PPERC_INDEX]/100
                    #if (pname in plist):
                    #    print 'Y'
                    #else:
                    #    print pname
                #print result
                print_xhh_format(name.encode('gbk'), result, l)
            except KeyError:
                print name.encode('gbk')+ "\tNO"
                print name.encode('gbk')+ "\tNO"

name_list=[
    u'卓开阔', u'张国振', u'岳朝鹏', u'燕翔', 
    u'蔡东宝', u'耿鹏', u'郭飞', u'郭乙宏', u'郝晓燕', u'何贝', u'贺军', u'胡仁强', u'靳超伟', u'刘栋青', u'刘毅东', u'孟凡勇', u'穆进超', 
    u'潘文海', u'任军', u'沙硕', u'沈涛', u'孙金龙', u'孙野', u'王超琦', u'王成', u'王怀江', u'王佳', u'王建敏', u'王俊', u'王鹏', u'温抿雄', 
    u'温晓佩', u'吴培栋', u'吴熊楚', u'杨凯', u'杨韬', u'于晓娜', u'岳林', u'张友兵', u'张振兴', u'周兴韬', u'陈荣', u'陈怡', u'陈勇', u'单亚峰', 
    u'邓强', u'丁欢', u'樊帅', u'冯晨', u'符美元', u'付观华', u'高强', u'何晨光', u'何丹', u'胡莉丽', u'胡万亭', u'胡文灵', u'黄威', u'吉萌', u'柯长博', 
    u'李达明', u'李冠楠', u'李寒冰', u'李弘', u'李静', u'李楠', u'李青林', u'刘佳', u'刘鲁鹏', u'刘振玉', u'刘子扬', u'卢鑫', u'罗红磊', u'罗雷刚', 
    u'马麟', u'毛雄', u'戚力为', u'沈晓明', u'沈赜', u'施运涛', u'石宝峰', u'宋惠', u'宋明', u'孙晓光', u'王国英', u'王华伟', u'王韬', u'王天娇', 
    u'王嵬', u'韦文', u'吴昊', u'吴宇', u'谢和欢', u'闫友为', u'颜宇', u'杨默', u'袁春贵', u'袁通', u'张淼', u'张明垣', u'张晓飞', u'张晔伟', u'张毅楠', 
    u'赵鹏翀', u'赵伟', u'钟行', u'王磊', u'蔡莉莉', u'侯锡立', u'韩悦', u'侯世卓', u'黄钰', u'宁鑫', u'孙二敬', u'杨绚', u'周晶晶', u'周宁', u'朱莹莹'
    #u'卓开阔', u'张国振', u'岳朝鹏', u'燕翔', 
    #u'蔡东宝', u'耿鹏', u'郭飞', u'郭乙宏', u'郝晓燕', u'何贝', u'贺军', u'胡仁强', u'靳超伟', u'刘栋青', u'刘毅东', u'孟凡勇', u'穆进超', 
    #u'潘文海', u'任军', u'沙硕', u'沈涛', u'孙金龙', u'孙野', u'王超琦', u'王成', u'王怀江', u'王佳', u'王建敏', u'王俊', u'王鹏', u'温抿雄', 
    #u'温晓佩', u'吴培栋', u'吴熊楚', u'杨凯', u'杨韬', u'于晓娜', u'岳林', u'张友兵', u'张振兴', u'周兴韬', u'陈荣', u'陈怡', u'陈勇', u'单亚峰', 
    #u'邓强', u'丁欢', u'樊帅', u'冯晨', u'符美元', u'付观华', u'高强', u'何晨光', u'何丹', u'胡莉丽', u'胡万亭', u'胡文灵', u'黄威', u'吉萌', u'柯长博', 
    #u'李达明', u'李冠楠', u'李寒冰', u'李弘', u'李静', u'李楠', u'李青林', u'刘佳', u'刘鲁鹏', u'刘振玉', u'刘子扬', u'卢鑫', u'罗红磊', u'罗雷刚', 
    #u'马麟', u'毛雄', u'戚力为', u'沈晓明', u'沈赜', u'施运涛', u'石宝峰', u'宋惠', u'宋明', u'孙晓光', u'王国英', u'王华伟', u'王韬', u'王天娇', 
    #u'王嵬', u'韦文', u'吴昊', u'吴宇', u'谢和欢', u'闫友为', u'颜宇', u'杨默', u'袁春贵', u'袁通', u'张淼', u'张明垣', u'张晓飞', u'张晔伟', u'张毅楠', 
    #u'赵鹏翀', u'赵伟', u'钟行', u'王磊', u'蔡莉莉', u'侯锡立', u'韩悦', u'侯世卓', u'黄钰', u'宁鑫', u'孙二敬', u'杨绚', u'周晶晶', u'周宁', u'朱莹莹'
]
           
filter_list=[
    u'管理', u'产品支持', 
    u'行车指挥为核心的轨道交通智能运营自动化系统应用开发', u'城际铁路综调系统工程化的研究', u'区间光通信系统研究', u'机房动力及环境监控系统研究', u'通信铁塔安全监测系统研究', 
    u'基于TD-LTE的高速铁路宽带通信的关键技术研究与应用验证', u'通用安全信号应用平台升级优化', u'CTCS-3级列控系统安全通信协议软件模块研发', u'300T列控设备自主化和维护技术研究', 
    u'城际铁路信号系统增加ATO功能的研究-增加ATO功能后车载ATP适应性修改', u'E1车载设备开发', u'CTCS-3级列控系统车载设备研发', u'C2车载设备的研究（200T）', u'100km/h以上轨道车运行控制设备及技术研究', 
    u'时速200-250公里铁路列车车载运行控制系统研制', u'新一代LKJ技术和设备研究', u'基于西门子平台200T车载设备的研究', u'更高速度铁路关键技术标准研究-移动装备', 
    u'电务敏捷运维系统的研究（总）', u'信号产品综合运维平台及支撑技术研究', u'云计算在高铁列控系统维护技术的应用研究', u'C0改系统研究-C0改系统实验室建设', 
    u'城际铁路C2+ATO系统-系统仿真环境搭建与集成测试', u'车载专用测试工具的研究', u'地面控制设备自动化测试系统的研究', u'列控车载设备健康感知技术研究', 
    u'城际铁路信号系统增加ATO功能的研究', u'CBTC系统应用及产业化的研究', u'MATC系统应用及产业化的研究', u'全自动无人驾驶系统方案研究', u'阿根廷车载ATSD系统开发', 
    u'FZL300型地铁列车自动控制系统科研攻关及产业化', u'多特征脉冲轨道电路优化技术研究', u'ZPW-2000A无绝缘轨道电路优化的研究', u'轨道电路低频码频率适配技术研究', 
    u'贯通地线与光缆监测技术研究', u'C0改系统研究-应答器设备开发', u'C0改系统研究-BTM设备开发', u'C0改系统研究-应答器实验室建设', u'ZPW-2000A站内轨道电路系统及其轨道电路仿真平台的研究', 
    u'大容量应答器技术研究', u'城际铁路地面通信控制服务器系统研究', u'LKD2-T3型列控中心系统开发', u'CTCS-3级列控系统无线闭塞中心设备研发', u'列控系统信息安全关键技术研究', 
    u'列控中心区间占用逻辑检查', u'TSRS基础软件修改2A', u'列控系统结构优化与信息传输技术研究——列控系统信息传输技术研究', 
    u'列控系统结构优化与信息传输技术研究——列控系统架构优化技术研究', u'列控系统优化技术研究', u'地面信号安全平台研究', u'联锁软件优化升级的研究（地铁）', 
    u'通用全电子目标控制器开发', u'DS6-60平台可靠性优化的研究', u'铁路自动道口信号控制系统研究'
#    u'以行车指挥为核心的轨道交通综合自动化系统研究','城际铁路综调系统工程化的研究', u'区间光通信系统研究', u'机房动力及环境监控系统研究', u'通信铁塔安全监测系统研究', 
#    u'基于TD-LTE的高速铁路宽带通信的关键技术研究与应用验证', u'通用安全信号应用平台升级优化', u'CTCS-3级列控系统安全通信协议软件模块研发', u'300T列控设备自主化和维护技术研究', 
#    u'城际铁路C2+ATO系统-增加ATO功能后车载ATP适应性修改', u'E1车载设备开发', u'CTCS-3级列控系统车载设备研发', u'C2车载设备的研究（200T）', u'100km/h以上轨道车运行控制设备及技术研究', 
#    u'时速200-250公里铁路列车车载运行控制系统研制', u'新一代LKJ技术和设备研究', u'基于西门子平台200T车载设备的研究', u'更高速度铁路关键技术标准研究-移动装备', 
#    u'电务敏捷运维系统的研究', u'信号产品综合运维平台及支撑技术研究', u'云计算在高铁列控系统维护技术的应用研究', u'C0改系统研究-C0改系统实验室建设', 
#    u'城际铁路C2+ATO系统-系统仿真环境搭建与集成测试', u'车载专用测试工具的研究', u'地面控制设备自动化测试系统的研究', u'列控车载设备健康感知技术研究', 
#    u'城际铁路信号系统增加ATO功能的研究', u'CBTC系统应用及产业化的研究', u'MATC系统应用及产业化的研究', u'全自动无人驾驶系统方案研究', u'阿根廷车载ATSD系统开发', 
#    u'FZL300型地铁列车自动控制系统科研攻关及产业化', u'多特征脉冲轨道电路优化技术研究', u'ZPW-2000A无绝缘轨道电路优化的研究', u'轨道电路低频码频率适配技术研究', 
#    u'贯通地线与光缆监测技术研究', u'C0改系统研究-应答器设备开发', u'C0改系统研究-BTM设备开发', u'C0改系统研究-应答器实验室建设', u'ZPW-2000A站内轨道电路系统及其轨道电路仿真平台的研究', 
#    u'大容量应答器技术研究', u'城际铁路地面通信控制服务器系统研究', u'LKD2-T3型列控中心系统开发', u'CTCS-3级列控系统无线闭塞中心设备研发', u'列控系统信息安全关键技术研究', 
#    u'列控中心区间占用逻辑检查', u'TSRS基础软件（V3.0.1)修改', u'列控系统结构优化与信息传输技术研究——列控系统信息传输技术研究', 
#    u'列控系统结构优化与信息传输技术研究——列控系统架构优化技术研究', u'列控系统优化技术研究', u'地面信号安全平台研究', u'联锁软件优化升级的研究（地铁）', 
#    u'通用全电子目标控制器开发', u'DS6-60平台可靠性优化的研究', u'铁路自动道口信号控制系统研究'
]

if __name__ == '__main__':
    if len(sys.argv) > 1:
        cmd = sys.argv[1]
        if cmd == 'list':
            print filter_list
        elif cmd == 'test':
            filename = sys.argv[2]
            ret = read_worktime(filename)
            #print_matrix(ret)
            print_matrix(ret, name_list, filter_list)
        else:
            ret = read_worktime(cmd)
            print_matrix(ret)

